package jdk8的特性.Stream.映射;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @author idea
 * @data 2018/9/8
 */
public class Test {
    public static void main(String[] args) {
        List<String> wordList = Arrays.asList("idea", "apple", "util", "detail");
        //假设需要对map进行较为复杂的操作，可以借鉴一下谓词的思想
        List<Integer> wordLengthList = wordList.parallelStream()
                .map(String::length)
                .collect(Collectors.toList());

        wordLengthList.forEach((len) -> {
            System.out.println(len);
        });


        //假设现在有个需求，需要我们查询出一个单词list里面有多少种字母，分别是什么？
        List<String> wordDistinctList = wordList.parallelStream()
                //这里会产生多个流，所以需要使用flatmap将多个流进行统一扁平化处理
                .map(w->w.split(""))
                //这里需要引用扁平流的思路来进行处理
                .flatMap(Arrays::stream)
                .distinct()
                .collect(Collectors.toList());
        wordDistinctList.forEach((item)->{
            System.out.println(item);
        });

    }
}
